/*****************************************************************************
*
*  PROJECT:     SlipStream
*               (CParticle - particles)
*  LICENSE:     GNU General Public License v3 - http://www.gnu.org/licenses/gpl.html

*  DEVELOPERS:  Philip Farquharson	<B00137077@studentmail.uws.ac.uk>
*				John Gray			<B00145524@studentmail.uws.ac.uk>		
*				Zohaib Bhatti		<B00104280@studentmail.uws.ac.uk>
*				Euan Hislop			<B00138636@studentmail.uws.ac.uk>
*
*****************************************************************************/

#ifndef CPARTICLE
#define CPARTICLE

#include "CVector3.h"
#include "CColor.h"
#include "CTextureManager.h"
#include <windows.h>
#include <GL/gl.h>
#include <GL/glut.h>

class CParticle
{
	private:
		CVector3 m_vecPosition;
		CVector3 m_vecDirectionSign;
		CVector3 m_vecDefaultPosition;
		CVector3 m_vecDefaultGravity;
		CVector3 m_vecGravity;
		CVector3 m_vecDirection;

		float m_fLife;
		float m_fFade;
	
		CColor m_Color;

	public:
		CParticle( CVector3 vecPosition, CVector3 vecGravity, CVector3 vecDirection, CVector3 vecDirectionSign, CColor col );
		~CParticle ( void );

		CVector3 GetPosition ( void )								{ return m_vecPosition; }
		void SetPosition ( CVector3 vecPosition )					{ m_vecPosition = vecPosition; }

		CVector3 GetDefaultPosition ( void )						{ return m_vecDefaultPosition; }
		void SetDefaultPosition ( CVector3 vecDefaultPosition )		{ m_vecDefaultPosition = vecDefaultPosition; }

		CVector3 SetDefaultGravity ( void )							{ return m_vecDefaultGravity; }
		void SetDefaultGravity ( CVector3 vecDefaultGravity )		{ m_vecDefaultGravity = vecDefaultGravity; }

		CVector3 GetDirection ( void )								{ return m_vecDirection; }
		void SetDirection ( CVector3 vecDirection )					{ m_vecDirection = vecDirection; }

		CColor GetColor ( void )											{ return m_Color; }
		void SetColor ( CColor col )										{ m_Color = col; }

		void Update ( void );
		void Draw ( void );
};
#endif